package org.jeecg.modules.demo.Kingdee.bank.entity.settlement;

import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * 单笔付款查证请求实体 (SKDLBATD)
 * 参数名严格按照接口文档定义，确保与银行接口字段完全一致
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
public class SinglePaymentQueryRequest {
    
    /**
     * 接口请求代码
     */
    private String action = "SKDLBATD";
    
    /**
     * 银企直联用户名
     */
    private String userName;
    
    /**
     * 外部请求流水号
     * 最大长度为50
     */
    private String externalNum;
    
    // ========== 向下兼容的getter/setter方法 ==========
    // 为了保持向下兼容，提供原有字段名的getter/setter方法
    
    @JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
    public String getExtOrdNo() {
        return this.externalNum;
    }
    
    public void setExtOrdNo(String extOrdNo) {
        this.externalNum = extOrdNo;
    }
    
    // 以下字段在接口文档中不存在，但为了兼容性保留
    // 这些可能是其他查证接口或内部查询逻辑的参数
    
    /**
     * 查询开始日期 (非标准接口参数，保留兼容)
     */
    @JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
    private String startDate;
    
    /**
     * 查询结束日期 (非标准接口参数，保留兼容)
     */
    @JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
    private String endDate;
    
    /**
     * 起始记录号 (非标准接口参数，保留兼容)
     */
    @JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
    private String startRecord = "1";
    
    /**
     * 请求记录条数 (非标准接口参数，保留兼容)
     */
    @JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
    private String pageNumber = "100";
}